package com.fowo.api.sms.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.time.Duration;
import java.util.List;

/**
 * 验证码配置
 */
@Data
@ConfigurationProperties(prefix = "verification-code")
public class VerificationCodeProperties {

    /**
     * 验证码长度（默认 6 位）
     */
    private int len = 6;

    /**
     * 验证码类型（默认纯数字）
     */
    private CodeType type = CodeType.NUMBER;

    /**
     * 验证码有效时长（默认 10 分钟）
     */
    private Duration validDuration = Duration.ofMinutes(10);

    /**
     * 在验证码到期前是否可以重复校验
     */
    private boolean canRepeatValidation = false;

    /**
     * 手机号列表，调试模式，不对此号码发送验证码，并且任何验证码都通过验证，此选项只用于测试
     */
    private List<String> debugPhoneNumbers;

    /**
     * 验证码类型
     */
    public enum CodeType {
        /**
         * 纯数字
         */
        NUMBER,
        /**
         * 字母与数字
         */
        LETTER_AND_NUMBER
    }
}
